Ce projet permet de :
- Tracer une courbe elliptique aux paramètres voulus, sur un corps fini ou non
- Générer une paire de clé à partir d'une courbe elliptique donnée
- Crypter / Décrypter un message par ECIES
- Le signer / vérifier en utilisant ECDSA
- Simuler une exploitation de la CVE 2022 21449
Tout les fichiers dans ce dossier sont temporaires et seront rassemblés dans un fichier unique
- doc/Introduction à la cryptographie asymétrique.pdf
Ce pdf contient la théorie sur laquelle se base ce projet: cryptographie asymétrique, signatures, courbes elliptques, ECIES.Les sources utilisées sont citées à la fin du document.
- doc/Les fonctions de hachage - notes.md
Ce fichier contient une brève explication sur le fonctionnement de fonctions de hachage tel que SHA 1.
- doc/README.md
Ancien README contenant des détails sur le fonctionement du code dans src/ et sur d'autres notions éssentielles sur les courbes elliptiques.
- Sujet.txt
Le sujet du stage.
- src/Addition de points sur courbe elliptique
Cette partie est essentielle pour le projet et implémente l'addition de deux points sur une courbe elliptique sur le corps des réels. Même si cette version n'est pas utilisé pour crypter ou signer, elle est très utile pour comprendre simplement comment fonctionne l'addition de deux points.
Librairies requises: numpy, matplotlib
- src/Cryptage ECIES
Grâce aux outils dans ecc_tools et les fonction dans ECIES, on peut crypter et décrypter des messages sur des courbes elliptques sur un corps fini. On peut aussi visualiser une courbe elliptique avec une clé publique placée dessus grâce à la fonction plot.
Librairies requises: numpy, matplotlib, PyCryptodomex
- src/ECDSA
On retrouve dans le fichier main.py de fichier toutes les actions que l'on peut faire cette fois ci sur des courbes elliptiques à corps fini: crypter/décrypter, signer/vérifier et simuler une exploitation de la CVE 2022 21449.
Librairies requises: numpy, matplotlib, PyCryptodomex